//
//  IFDefinition.h
//  IFJPEGSDK_OBJC
//
//  Created by zsc-onlyyi on 2021/10/13.
//
//IJPEG_SUCCESS = 0,
//IJPEG_ERROR_PARAM = -1,
//IJPEG_CHECK_FAIL =-2,
//IJPEG_OPEN_FAIL=-3,

/*!

@enum  IFIJPEGStatus

@abstract JPEG操作返回状态

@constant IFIJPEGStatusSuccess 成功

@constant IFIJPEGStatusErrorParam 失败
 
@constant IFIJPEGStatusCheckFailed 参数检查失败
 
@constant IFIJPEGStatusOpenFailed 图片文件打开失败

*/

typedef enum : NSInteger {
    IFIJPEGStatusSuccess,
    IFIJPEGStatusErrorParam = -1,
    IFIJPEGStatusCheckFailed = -2,
    IFIJPEGStatusOpenFailed = -3
} IFIJPEGStatus;


/*!

@enum  IFImageOrgType

@abstract 图片类型

@constant IFImageOrgTypeIR 仅红外

@constant IFImageOrgTypeTemp 仅温度

@constant IFImageOrgTypeVL 仅可见光

@constant IFImageOrgTypeIRAndTemp 红外和温度

@constant IFImageOrgTypeIRAndVL 红外和可见光
 
@constant IFImageOrgTypeTempAndVL 温度和可见光

@constant IFImageOrgTypeTempAndVLAndIR 可见光和温度和红外

*/

typedef enum : uint8_t {
    IFImageOrgTypeIR = 1,
    IFImageOrgTypeTemp,
    IFImageOrgTypeVL,
    IFImageOrgTypeIRAndTemp,
    IFImageOrgTypeIRAndVL,
    IFImageOrgTypeTempAndVL,
    IFImageOrgTypeTempAndVLAndIR
} IFImageOrgType;


/*!

@enum  IFImageDispType

@abstract 图片显示类型

@constant IFImageDispTypeIR 仅红外

@constant IFImageDispTypeVL 仅可见光

@constant IFImageDispTypeIRAndVL 可见光和红外
*/

typedef enum : uint8_t {
    IFImageDispTypeIR = 1,
    IFImageDispTypeVL,
    IFImageDispTypeIRAndVL
} IFImageDispType;


/*!

@enum  IFImageRotate

@abstract 图片旋转角度

@constant IFImageRotateZero 原始

@constant IFImageDispType90degree 顺时针90度

@constant IFImageDispType180degree 顺时针180度

@constant IFImageDispType270degree 顺时针270度

*/

typedef enum : uint8_t {
    IFImageRotateZero = 0,
    IFImageDispType90degree,
    IFImageDispType180degree,
    IFImageDispType270degree
} IFImageRotate;

/*!

@enum  IFImageMirFlip

@abstract 图片翻转镜像

@constant IFImageMirFlipXMirror Xmir

@constant IFImageMirFlipYMirror Ymir
 
@constant IFImageMirFlipYMirror XYmir

*/

typedef enum : uint8_t {
    IFImageMirFlipOriginal = 0,
    IFImageMirFlipXMirror,
    IFImageMirFlipYMirror,
    IFImageMirFlipXYMirror
} IFImageMirFlip;

/*
 0：不可切换；
 1：可切换
 */

/*!

@enum  IRImageColorSwitchable

@abstract 图片原始伪彩

@constant IRImageColorSwitchableOff 不可切换

@constant IRImageColorSwitchableOn 可切换

*/

typedef enum : uint8_t {
    IRImageColorSwitchableOff = 0,
    IRImageColorSwitchableOn,
} IRImageColorSwitchable;

//重定向地址输出
/*
 #define IJPEG_DEBUG(format, ...) ijpeg_debug_print("libijpeg debug [%s:%d/%s] " format "\n", \
                                                  basename(__FILE__), __LINE__, __FUNCTION__, ##__VA_ARGS__)
 #endif

 #if defined(_WIN32)
 #define IJPEG_ERROR(format, ...) ijpeg_error_print("libijpeg error [%s:%d/%s] " format "\n", \
                                                  __FILE__,__LINE__, __FUNCTION__, __VA_ARGS__)
 #elif defined(linux) || defined(unix) || __APPLE__
 #include <libgen.h>
 #define IJPEG_ERROR(format, ...) ijpeg_error_print("libijpeg error [%s:%d/%s] " format "\n", \
                                                  basename(__FILE__), __LINE__, __FUNCTION__, ##__VA_ARGS__)
 */
